﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ASS.BUS.DTO;
using ASS.BUS.Services;

namespace ASS
{
    public partial class FrmLogin : Form
    {
        int _countLogin;
        public FrmLogin()
        {
            _countLogin = 0;
            InitializeComponent();
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            _countLogin++;

            if (_countLogin > 5)
            {
                lblThongBao.Text = @"Tài khoản của bạn tạm thời bị khóa do đăng nhập không thành công nhiều lần";
            }
            else
            {
                var nhanVienServices = new NhanVienServices();
                var nhanViens = nhanVienServices.GetNhanViens();
                var check = false;

                //if (String.IsNullOrWhiteSpace(txtUsername.Text) && String.IsNullOrWhiteSpace(txtPassword.Text))
                //{
                //    int id = 0;
                //    Int32.TryParse(txtUsername.Text, out id);
                //    var password = txtPassword.Text;
                //    var isValid = nhanVienServices.Login(id, password);

                //    if (isValid == null)
                //    {
                //        lblThongBao.Visible = true;
                //        txtUsername.Text = "";
                //        txtPassword.Text = "";
                //    }
                //    else
                //    {
                //        var frmMain = new FrmMainClinicStaff(isValid, this);
                //        frmMain.Show();
                //        txtUsername.Text = "";
                //        txtPassword.Text = "";
                //        lblThongBao.Visible = false;
                //    }
                //}

                foreach (var nhanVien in nhanViens)
                {
                    if (nhanVien.MaNv.ToString().Equals(txtUsername.Text) && nhanVien.Password.Equals(txtPassword.Text))
                    {
                        var frmMain = new FrmMainClinicStaff(nhanVien, this);
                        frmMain.Show();
                        txtUsername.Text = "";
                        txtPassword.Text = "";
                        lblThongBao.Visible = false;
                        check = true;
                        break;
                    }
                }
                if (check == false)
                {
                    lblThongBao.Visible = true;
                    txtUsername.Text = "";
                    txtPassword.Text = "";
                }
            }
            
        }

        private void FrmLogin_Load(object sender, EventArgs e)
        {
            //Mã hóa password của nv đã Seed do không làm Role Admin
            var nhanVienServices = new NhanVienServices();
            var nhanViens = nhanVienServices.GetNhanViens();

            foreach (var nhanVien in nhanViens)
            {
                if (nhanVien.Password != "12345678")
                {
                    nhanVienServices.SetNewPassword(nhanVien.MaNv, nhanVien.Password);
                }
            }          
        }
    }
}
